home *** CD-ROM | disk | FTP | other *** search
- # Tcl/Tk-GUI for Shelly1.5
- # start with "wish -file sh.tcl"
-
-
- # some procedures ...
- proc loadfile2 {file} { set fileid [open "$file" r]
- .mytext delete 0.0 end
- .esave delete 0 end
- .esave insert 0 "$file"
- .eload insert 0 "$file"
- while {[gets $fileid line] >= 0} {
- .mytext insert current $line
- .mytext insert current "\n"
- }
- close $fileid
- }
-
- proc browse {file} { if [file isfile $file] { loadfile2 $file
- destroy .newwin}
- }
-
-
- proc browsegui {} { toplevel .newwin
- wm title .newwin "Load"
- scrollbar .newwin.broscroll -command ".newwin.brolist yview"
- listbox .newwin.brolist -relief raised -yscrollcommand ".newwin.broscroll set"
- pack .newwin.broscroll -side right -fill y
- pack .newwin.brolist -fill none
- set dir .
- bind .newwin.brolist <Double-Button-1> {foreach i [selection get] {browse $i}}
- focus .newwin.brolist
- .newwin.brolist delete 0 end
- foreach i [exec ls -a .] { if {$i != "." } { if {$i != ".." } {
- .newwin.brolist insert end $i} }}
-
-
- }
-
-
-
- proc loadfile {} { set myerror [catch {set fileid [open [.eload get] r]}]
- if {$myerror != 0} {set fileid [open [.eload get].shy r]
- .eload insert end ".shy"}
- .mytext delete 0.0 end
- .esave delete 0 end
- .esave insert 0 [.eload get]
- while {[gets $fileid line] >= 0} {
- .mytext insert current $line
- .mytext insert current "\n"
- }
- close $fileid
- }
-
- proc savefile {} { set fileid [open [.esave get] w]
- puts $fileid [.mytext get 0.0 end]
- close $fileid
- }
-
-
-
- proc neuload {} { if {[.eload get] == ""} {browsegui} else {loadfile}}
-
-
- proc calcshell {} { set fileid [open /tmp/[.esave get].tmp w]
- puts $fileid [.mytext get 0.0 end]
- close $fileid
- exec shelly /tmp/[.esave get].tmp [.eShout get] &
- }
- proc calcrender {} { set fileid [open /tmp/[.esave get].tmp w]
- puts $fileid [.mytext get 0.0 end]
- puts $fileid "POV\nRENDER\n"
- puts $fileid "camx:[.ecamx get]\n"
- puts $fileid "camy:[.ecamy get]\n"
- puts $fileid "camz:[.ecamz get]\n"
- close $fileid
- exec shelly /tmp/[.esave get].tmp [.eShout get] &
- }
-
- proc calcdispl {} { set fileid [open /tmp/[.esave get].tmp w]
- puts $fileid [.mytext get 0.0 end]
- puts $fileid "X3D\n"
- close $fileid
- exec shelly /tmp/[.esave get].tmp [.eShout get]
- exec x3d [.eShout get] &
- }
- proc reinit {} { .mytext delete 0.0 end
- .esave delete 0 end
- .eload delete 0 end
- }
-
-
- # create hierachical geometry
- frame .buttons
- frame .uhalf
- frame .text
- frame .rhalf
- frame .labels
- frame .entries
- pack .buttons -in . -side bottom
- pack .uhalf -in . -side top
- pack .text -in .uhalf -side left -padx 3m -pady 3m
- pack .rhalf -in .uhalf -side right
- pack .labels -in .rhalf -side left
- pack .entries -in .rhalf -side right
-
-
- # create Text-widget
- text .mytext -yscrollcommand ".scroll set" -relief sunken -borderwidth 2 -width 50
- scrollbar .scroll -relief flat -command ".mytext yview"
- pack .scroll -in .text -side right -fill y
- pack .mytext -in .text -fill none
- .mytext insert current "Welcome to the Tcl/Tk-GUI for Shelly1.5"
-
- # create Labels & Entries
- label .lload -text "Load:"
- label .lsave -text "Save:"
- label .lShout -text "Shelly/Outp.:"
- label .lcamx -text "camx:"
- label .lcamy -text "camy:"
- label .lcamz -text "camz:"
- pack .lload .lsave .lShout .lcamx .lcamy .lcamz -in .labels -side top -anchor w -pady 2m -padx 2m
-
- entry .eload -relief sunken
-
- bind .eload
-
- entry .esave -relief sunken
- entry .eShout -relief sunken
- .eShout insert 0 "/tmp/shell"
- entry .ecamx -relief sunken
- .ecamx insert 0 "0"
- entry .ecamy -relief sunken
- .ecamy insert 0 "10"
- entry .ecamz -relief sunken
- .ecamz insert 0 "10"
- pack .eload .esave .eShout .ecamx .ecamy .ecamz -in .entries -side top -anchor w -pady 2m -padx 2m
-
- # create Buttons
- button .bnew -text " New! " -command reinit
- button .bload -text " Load " -command neuload
- button .bsave -text " Save " -command savefile
- button .bcalc -text " Calc " -command calcshell
- button .bcalcrender -text " Calc & Render " -command calcrender
- button .bcalcdisplx3d -text " Calc & Display X3D " -command calcdispl
- button .bexit -text " Exit! " -command "destroy ."
- pack .bload .bsave .bcalc .bcalcrender .bcalcdisplx3d .bnew .bexit -in .buttons -side left -padx 4m -pady 3m
-
-